home *** CD-ROM | disk | FTP | other *** search
/ MacTech 1 to 12 / MacTech-vol-1-12.toast / Source / MacTech® Magazine / Volume 11 - 1995 / 11.02 Feb 95 / 11.02 Challenge / SolveTopEdgesLeft-Back.c < prev    next >
Encoding:
C/C++ Source or Header  |  1994-12-10  |  2.6 KB  |  74 lines  |  [TEXT/KAHL]

  1. /*
  2.  
  3.     SolveRubiksCube
  4.     Copyright (c) 1994  J Robert Boonstra
  5.         
  6. */
  7.  
  8. #pragma options(honor_register,assign_registers)
  9.  
  10. #include "rubik.h"
  11. #include "transform.h"
  12.  
  13. void SolveTopEdgesLB(register RubiksCube *rub)
  14. {
  15.  
  16. /*
  17.  * Find the top-back edge cube, and move it into the 
  18.  * proper position.
  19.  */
  20.   if (UB_U == U && UB_B == B)        { ;/* correct as is */
  21.   } else if (UF_U == B && UF_F == U) { F2D3L1B3L3;
  22.   } else if (UR_U == B && UR_R == U) { R1B1;
  23.   } else if (UB_U == B && UB_B == U) { B2D1L1B3L3;
  24.   } else if (UL_U == B && UL_L == U) { L3B3;
  25.   } else if (RF_F == B && RF_R == U) { F1D2F3B2;
  26.   } else if (RB_R == B && RB_B == U) { R1D1R3B2;
  27.   } else if (LB_B == B && LB_L == U) { B3;
  28.   } else if (LF_L == B && LF_F == U) { F3D3F1L1B3L3;
  29.   } else if (DF_D == B && DF_F == U) { D3L1B3L3;
  30.   } else if (DR_D == B && DR_R == U) { R3B1R1;
  31.   } else if (DB_D == B && DB_B == U) { D1L1B3L3;
  32.   } else if (DL_D == B && DL_L == U) { L1B3L3;
  33.   } else if (UF_U == U && UF_F == B) { F2D2B2;
  34.   } else if (UR_U == U && UR_R == B) { R2D1B2;
  35.   } else if (UL_U == U && UL_L == B) { L2D3B2;
  36.   } else if (RF_F == U && RF_R == B) { F1D3F3L1B3L3;
  37.   } else if (RB_R == U && RB_B == B) { B1;
  38.   } else if (LB_B == U && LB_L == B) { B1D1L1B3L3;
  39.   } else if (LF_L == U && LF_F == B) { L2B3L2;
  40.   } else if (DF_D == U && DF_F == B) { D2B2;
  41.   } else if (DR_D == U && DR_R == B) { D1B2;
  42.   } else if (DB_D == U && DB_B == B) { B2;
  43.   } else if (DL_D == U && DL_L == B) { D3B2;
  44.   }
  45. /*
  46.  * Find the top-left edge cube, and move it into the 
  47.  * proper position.
  48.  */
  49.   if (UL_U == U && UL_L == L)        {; /* correct as is */
  50.   } else if (UF_U == L && UF_F == U) { F3L3;
  51.   } else if (UR_U == L && UR_R == U) { R2D3F1L3F3;
  52.   } else if (UB_U == L && UB_B == U) { B1L1;
  53.   } else if (UL_U == L && UL_L == U) { L2D1F1L3F3;
  54.   } else if (UF_U == U && UF_F == L) { F2D3L2;
  55.   } else if (UR_U == U && UR_R == L) { R2D2L2;
  56.   } else if (UB_U == U && UB_B == L) { B2D1L2;
  57.   } else if (RF_F == L && RF_R == U) { R3D3R1F1L3F3;
  58.   } else if (RB_R == L && RB_B == U) { R1D2R3L2;
  59.   } else if (LB_B == L && LB_L == U) { B1D1B3L2;
  60.   } else if (LF_L == L && LF_F == U) { L3;
  61.   } else if (RF_F == U && RF_R == L) { F2L3F2;
  62.   } else if (RB_R == U && RB_B == L) { R1D3R3F1L3F3;
  63.   } else if (LB_B == U && LB_L == L) { L1;
  64.   } else if (LF_L == U && LF_F == L) { L1D1F1L3F3;
  65.   } else if (DF_D == L && DF_F == U) { F1L3F3;
  66.   } else if (DR_D == L && DR_R == U) { D3F1L3F3;
  67.   } else if (DB_D == L && DB_B == U) { B3L1B1;
  68.   } else if (DL_D == L && DL_L == U) { D1F1L3F3;
  69.   } else if (DF_D == U && DF_F == L) { D3L2;
  70.   } else if (DR_D == U && DR_R == L) { D2L2;
  71.   } else if (DB_D == U && DB_B == L) { D1L2;
  72.   } else if (DL_D == U && DL_L == L) { L2;
  73.   }
  74. }